package com.fengwk.cv4j.view.common;

import com.fengwk.cv4j.compute.Compute;
import com.fengwk.cv4j.factory.ViewFactory;
import com.fengwk.cv4j.view.View;
import com.fengwk.cv4j.view.ViewImpl;
import com.fengwk.support.exception.BaseException;

/**
 * 通用的四舍五入算子
 * 
 * @author fengwk
 *
 * @param <T>
 */
public class RoundView<T> extends ViewImpl<T> {

    private static final long serialVersionUID = 6527906115730500289L;

    public RoundView(Compute<T> compute, ViewFactory<T> factory, @SuppressWarnings("unchecked") View<T>...vs) {
        super(compute, factory, vs);
        checkVs(1, vs);
    }

    @Override
    protected T compute0() {
    	return c().round(t(0));
    }

    @Override
    protected View<T> gradient0(int idx) {
        throw new BaseException("can't support round gradient");
    }
    
    @Override
    public String toString() {
        return "round";
    }

}
